package com.liyiruo.tx.service.main5;

import com.liyiruo.tx.mapper.TableAMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 在testMain上声明事务且使用REQUIRED传播方式的时候，
 这个时候执行testB就满足当前存在事务，则加入当前事务，
 在testB抛出异常时事务就会回滚，最终结果就是a1，b1和b2都不会存储到数据库
 *
 * @author liyiruo
 * @Description
 * @Date 2022/2/18 下午5:11
 */
@Service
public class TestMain5 {

    @Autowired
    private TableAMapper tableAMapper;
    @Autowired
    private TestBe testBe5;

    @Transactional(propagation = Propagation.REQUIRED)
    public void testMain() {
        tableAMapper.addTableA();  //调用A入参a1
        testBe5.testB();    //调用testB
    }
}
